1. Technical Field
The present invention relates in general to a method for efficiently retrieving data from mirrored network locations by monitoring communication performance and in particular to a method and system for monitoring communication performance and selecting an acceptable communication link within a data processing system. Still more particularly, the present invention relates to a method and system for monitoring communication performance between a client and a computer network and cascading received data while searching for an acceptable communication link and network location.
2. Description of the Related Art
The development of computerized information resources, such as interconnection of remote computer networks, allows users of data-processing systems to link with other "servers" and networks, and thus retrieve vast amounts of electronic information heretofore unavailable in an electronic medium. A server provides interconnection along communicating networks. Such electronic information is increasingly displacing more conventional meant of information transmission, such as newspapers, magazines, and even television. Often, users desire quick access to specific information on a re-occurring basis. It is therefore desirable to maximize efficiency and minimize complexity when retrieving information from predetermined locations utilizing a computer.
In computer communications, a set of computer networks which are possibly dissimilar from one another are joined together by "gateways". Gateways provide data transfer and conversion of messages from the sending network to the protocols and data type utilized by the receiving network. A gateway is a device utilized to connect dissimilar networks, or networks utilizing different communication protocols, such that electronic information utilizing different standards can be processed and transmitted from network to network. Gateways convert information to a form compatible with the protocols utilized by other networks for transport and delivery.
One type of remote network commonly utilized in recent years is the Internet. The term "Internet" is an abbreviation for "Internetwork," and is commonly utilized to describe the collection of networks and gateways which are compatible with the TCP/IP suite of protocols. TCP/IP protocols are well-known in the art of computer networking. TCI/IP is an acronym for "Transmission Control Protocol/Internet Protocol," a software protocol developed by the Department of Defense for communication between computers. The Internet can be described as a system of geographically distributed remote computer networks interconnected by computers which provide an interface that allow users to interact and share information oven the networks. Because of such widespread information sharing, remote networks such as the Internet have this far generally evolved into an "extensive" system which developers can provide information or services essentially without restriction.
Electronic information transferred between data-processing networks is usually presented in "hypertext", a metaphor for presenting information in a manner in which text, images, sounds, and actions become linked together in a complex non-sequential "web" of associations. The web of associates permit a user to "browse" or "navigate" through related topics, regardless of the presented order of the topics.
These links are often established by both the author of a hype text document and by the user, depending on the intent of the hypertext document. For example, traveling among lines to the word "iron" in an article displayed within a graphical user interface, in a data-processing system, might lead the user to the periodic table of the chemical elements (i.e., linked by the word "iron"), or to a reference to the utilization of iron in weapons in Europe in the Dark Ages.
The term "hypertext" was coined in the 1960s to describe documents, as presented by a computer, that express tie nonlinear structure of ideas, as opposed to the lineal format of books, film, and speech. The term "hypermedia," on the other hand, more recently introduced, is nearly synonymous with "hypertext," but focuses on the non-textual components of hypertext, such as animation, recorded sound, and video.
A typical networked system which utilizes hypertext and hypermedia conventions follows a client/server architecture. The "client" is a member of a class or group that utilizes the services of another class or group to which it is not related. Thus, in computing, a client is a process (i.e., roughly a program or task) that requests a service provided by another program active in a "server". The client process utilizes the requested service without having to "know" any working details about the other program or the service itself. In a client/server architecture, particularly a networked system, a client is usually a computer that accesses shared network resources provided by a server (i.e., another computer).
A request for information by a user is sent by a client application program to a server. A server is typically a remote computer system accessible over a remote network, such as the Internet. The server scans and searches for raw (e.g., unprocessed) information sources, for example, newswire feeds or newsgroups. Based upon the user's request, the server presents filtered electronic information as a server response to the client process. The client process may be active in a first computer system, and the server process may be active in a second computer system. The client and server communicate with one another over a communications medium, thus providing distributed functionality and allowing multiple clients to take advantage of the information-gathering capabilities of a single server.
Free or relatively inexpensive computer software applications, such as Internet "search engines," allow a user to locate sites where an individual can obtain information on a topic of interest. A person utilizing a graphical user interface of a computer system may enter a subject or key word which generates a list of network locations or "web sites". "Home pages" or title pages for a network location are published by thousands of companies, universities, government agencies, museums, and municipalities. Thus, the Internet can be an invaluable information resource.
A client and server can communicate with one another utilizing the functionality provided by Hypertext-Transfer Protocol (HTTP). The World Wide Web (WWW) or, simply, the "web," includes those servers adhering to the HTTP standard, such servers are accessible to clients via a computer or data-processing system network address, such as a Universal Resource Locator (URL). A network location dan be directly accessed by utilizing a Universal Resource Locator address.
Active within the client is a first process, known as a "browser," which establishes the connection between the client and the server and presents information to the user on a graphical user interface. The server itself executes corresponding server software which presents information to the client in the form of HTTP responses. The HTTP Responses correspond to "web pages" constructed from a Hypertext Markup Language (HTML), or other server-generated data. A client and a server may be coupled to one another via a Serial Line Internet Protocol (SLIP) or a TCP/IP Connection for high-capacity communication.
Generally, a client displays a browser and data received from the network is displayed via a graphical user interface. A graphical user interface is a type of display format that enables a user to choose commands, start programs, and see lists of files and other options by pointing to pictorial representations (icons or selectable buttons) and/or lists of menu items on the display. User selections are generally activated either with a keyboard or a mouse.
A graphical user interface (GUI) can be employed by a user to start processes, view file content and to select tolls. Additionally, a GUI allows a user to command many selectable tools by pointing to a desired selection and depressing a push button typically utilizing a mouse. A desired selection might be a textual reference, a toolbar button, or a selection from a list of menu items on a computer display screen.
A user selectable choice can generally be activated by either a keyboard or a push button switch located on a pointing device such as a "moused". A mouse is a commonly utilized pointing device, generally containing more than one button. A pointing device allows a user to interact with a product or operating environment, such as a graphical user interface. In many graphical user interfaces, a vertical or horizontal bar at the side, bottom or top of a graphical user interface window can be utilized in conjunction with a pointing device, such as a mouse, trackball, or stylus to quickly select features of the application program.
Additional vertical and horizontal bars may contain "selectable buttons." Selectable buttons are commonly called "icons" by those familiar with graphical user interfaces. An icon is a selectable button viewable within a graphical user interface, typically containing a pictorial representation or a mnemonic representative of a selectable feature.
Generally, the pictorial representation contained within an icon is a graphic symbol allowing a user to associate an icon with a particular selectable function. An icon can be selected by pointing to the icon utilizing a pointing device and activating a push-button on the mouse when the icon is pointed to. Pointing to a selection add depressing a mouse button is commonly referred to by those having skill in the art as "pointing and clicking" on the icon or on the menu item. Pointing and clicking is a user friendly way to select a particular function or software application. Generally, an icon contains a visual mnemonic which allows a user to identify a selection without having to remember commands or type in commands utilizing a keyboard as is required in a disk operating system (DOS) environment.
Horizontal or vertical bars containing textual menu category hearings are commonly referred to as menu bars. Horizontal or vertical bars containing icons are commonly referred to as toolbars. Toolbars are a well known part of graphical user interfaces which simplifies access to files and allows the user to perform complicated system commands by pointing and clicking on a selectable item within the graphical user interface. Toolbar selectable user commands provide efficient interface between the user and a computer system. Often, user selectable commands located on a toolbar are duplicated in the menu bar.
It is easier and more efficient to activate selections within a toolbar than to locate and select menu headings and corresponding menu items. Menu items and sub-menu items are not continuously displayed and a menu heading must be selected to view a list of menu items contained under the menu heading.
It is often difficult to locate desirable information resources, or web pages, and locating a pertinent resource can consume a substantial amount of time. Locating an information resource is typically done by keyword searching. Keyword searching is accomplished when a user provides a keyword and instructs the client via a server to search for information resources having the keyword or information resources linked to the keyword. Typically, the user receives voluminous information from the internet when a keyword search is performed. A single retrieval can provide links to a considerable quantity of network locations. Next, the user must sort through the received information for desirable data.
Web pages or network locations can also be accessed by a client which specifies a unique network address (i.e., Universal Resource Locator). A Universal Resource Locator ha; two basic components, the protocol to be utilized aid the object pathname. For example, the Universal Resource Locator address, "http://www.uspto.gov" is the home page for the U.S. Patent and Trademark Office. This address specifies a hypertext-transfer protocol ("http") and a pathname of the server ("www.uspto.gov"). The server name is associated with a unique numeric value (TCP/IP address).
The graphical portion of the World Wide Web itself is usually stocked with more than twenty-two million "pages" of content, with over one million new pages added every month. With a little practice, a user can skim millions of web pages or thousands of newsgroups, not only for topics of general interest, but also to access desirable and meaningful data. However, locating and scanning web pages can consume hours and hours of a users time. The market for Internet access and related applications is explosive and utilization of the internet is growing faster than expected, doubling in size approximately every three months. Because of the growth of the "Internet" and the so-called "World Wide Web" in recent years, the amount of data which must be screened to get desirable data is overwhelming.
In order to avoid the inefficiencies of relocating a resource after it is has been initially located, a "bookmark", "hotlist" or "favorites" function is typically offered as part of the graphical user interface within a web browser application program. Generally, a bookmark or favorites is a universal resource locator or a network address which is stored by the browser. When a bookmark is selected, the corresponding URL address is sent to a server by the client, then the desired location is accessed and corresponding information is retrieved efficiently with minimal user input and effort.
A typical user retains a considerable quantity of bookmark locations. Typically, a user places bookmark network locations in folders. A folder is a grouping of network locations within a bookmark menu selection. Selecting the bookmark heading will display folder titles. Selection of the folder title will display the stored network locations. Generally, a folder will contain network locations having similar subject matter.
Often, a web page provides "links" or highlighted keywords which provide access to other network locations or web pages having related subject matter. Such network locations provide information on subject matter related to the highlighted keyword. Links provide efficient access to web pages having information related to the highlighted keyword or link. Typically, the link displayed provides a URL address which resides in hidden text within the displayed web page.
When a user points and clicks on a displayed link, a browser will retrieve the hidden URL address and then directly access the network location pertaining to the displayed link. Typically, the browser will utilize the URL found in the hidden text to locate the linked network location. Links within a web page provide quick access to identical or related subject matter. Selecting and retrieving a linked web page allows fast and efficient examination of the linked subject matter for relevance.
Data available from a network location is often duplicated or "mirrored" at other network locations. These duplicate locations are commonly referred to as "mirrored network locations". Often, if mirrored network locations exists, the mirrored network locations are displayed on an initial page retrieved from a network location. Typically, displayed text indicating mirrored network locations is highlighted to indicate that the mirrored network location is on screen selectable by a pointing device. Alternately described, links to mirrored network locations are often provided within data retrieved over a computer network. Typically, selecting the highlighted mirrored link consists of pointing to the highlighted link and clicking on the link also referred to as pointing and clicking on the link utilizing a pointing device such as a mouse. Pointing and clicking on the line immediately attempts establishment of a communication link with the selected mirrored network location.
Often, the rate at which data is being received from a network location is slow. Telephone switching systems and computers which provide data to the users can be overloaded by tremendous quantities of users. Overloading a computer network slows network data transmission to intolerable levels. For example, a slow communication link downloading a video image may take on the order Of ten minutes in a heavily loaded computer network. Currently, tremendous communication speed is attainable with modern communication hardware. Therefore, many individuals prefer maximum performance and minimal delay.
When communication performance becomes unacceptable or the communication rate or the "download rate" is unacceptably slow, a user will manually terminate the communication and manually select a mirrored network location, which, hopefully will provide superior communication performance. In this scenario, a new connection must be established and the download from the newly selected mirrored network location must be restarted. All previously received data is discarded.
Slow data transmission can be due to many different phenomena. For example, a poor hardwired connection or a slow switch from a telephone service provider can drastically hinder data transmission speed. Additionally, heavy usage of a network location significantly slows the rate at which the sever can process client requests and the rate at which the server can transmit data to a client or user.
Currently, management of communication performance of network locations and mirrored network locations must be performed manually. This makes effective management of mirrored network locations virtually impossible. A user must access a network location then manually monitor its performance then decide whether to terminate the communication link and re-establish another communication link with another network location.
Additionally, the user has no effective way to monitor data rates and the user can only guess a which communication link provides superior performance. However, a computer can efficiently determine communication performance and quickly terminate and access network locations. A user friendly interface to determine acceptable communication performance and consecutively access mirrored network locations would be very desirable.
Based on the foregoing it can be seen that a need exists for automated monitoring of communication performance by a data processing system and automated accessing of mirrored network locations base on communication performance. It would therefore be desirable do devise a method of minimal complexity which allows users to efficiently command a computer to locate a network location from a list of mirrored network locations which has superior communication performance. It would be further advantageous to devise a method to allow a user to manage communication performance by setting minimum communication performance standards. Additionally, it would be advantageous if the method would retain current user interface behavior, but extend user functionality and increase communication performance.